Apparatus, systems and methods for media mosaic management

ABSTRACT

Systems and methods for managing media mosaics are described. One embodiment provides a media mosaic management method in a media device. The method generates a mosaic filter based on a program selected from a first media mosaic. The mosaic filter is used to identify related programs for presentation in a second, customized media mosaic.

BACKGROUND

Media devices, such as set-top boxes, are configured to receive mediacontent events (referred to herein interchangeably as a “program”) froma broadcasting system. Non-limiting examples of media content eventsinclude movies, news programs, sporting events, serial comedies ordramas, and other thematic-based media content events. Media contentevents may also include advertisements, commercials or the like. Mediacontent events may include one or more of video, audio, still images,text, and the like.

The media content events may be communicated to the media device by aprogram service provider over the broadcasting system. Non-limitingexamples of broadcasting systems include satellite systems, cable orother wire-based systems, or over the air (OTA) broadcasting systems.Media content events may also be accessed from other sources, such as aweb site or an on-demand content source via the Internet or othersuitable communication system.

A legacy electronic program guide (EPG) may be used to present programviewing selection choices to a user. The legacy EPG has the look andfeel of a table that uses a combination of text and/or symbols toindicate the program viewing choices that may be selected by the user.The legacy EPG is a type of a user interface that presents a menu, or aseries of menus, that describe available programs that are available forpresentation.

Typically, the legacy EPG is arranged as a table or grid. Each row ofthe table corresponds to a particular program provider (e.g., channel,station). The columns of the table correspond to particular time blocks.Each inner cell of the table identifies a particular program that isbeing broadcast during the corresponding time block.

Legacy EPGs are inherently limited in the amount of information that canbe presented at a single moment by the size (dimensions) of the displaythat is presenting the legacy EPG to a user. In particular, the numberof channels and time blocks is limited by the height and width of thedisplay, respectively. Also, channels are arranged in a largelyarbitrary manner, such that channels that are of interest to aparticular user are not necessarily presented near one another, possiblyrequiring a considerable amount of scrolling to move between channels ofinterest.

A video mosaic is another type of user interface for presentinginformation about available programming. A video mosaic is typically agrid-based arrangement of tiles that each present information about anavailable program. Each tile presents information about a correspondingprogram, such as the program name, running time, video trailer, or thelike.

Prior art video mosaics are limited in that they can only provide arelatively small amount of information. For example, a basic videomosaic may simply be a rearrangement of information that would bepresented on a single page of a legacy EPG, such as a selection ofprograms coming from a sequence of channels (e.g., channels 1-12) andbroadcasting at a particular time (e.g., 9:30 PM). In this way, thevideo mosaic is little better than the legacy EPG, and indeed may evenbe worse, because the video mosaic may not be able to present the eventhe same amount of information as the legacy EPG, because the tiles ofthe video mosaic may be larger than the corresponding cells of the EPG.

SUMMARY

Systems and methods for managing media mosaics are described. Oneembodiment provides a media mosaic management method in a media device.The method generates a mosaic filter based on a program selected from afirst media mosaic. The filter is used to identify related programs forpresentation in a customized second media mosaic.

In one embodiment, the method comprises outputting, for presentation ona display coupled to the media device, a first media mosaic thatincludes a first set of tiles that each correspond to a distinct mediacontent event, wherein each of the multiple tiles displays video fromthe corresponding media content event; receiving an indication of amedia content event corresponding to one of the multiple tiles selectedby a user; determining multiple related media content events that aresimilar to the indicated media content event; and outputting, forpresentation on the display, a second media mosaic that includes asecond set of tiles that each correspond to a distinct one of themultiple related media content events.

Other embodiments provide devices, systems, and/or computer-readablemedia configured to perform methods for generating and outputting mediamosaics.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred and alternative embodiments are described in detail below withreference to the following drawings:

FIG. 1 is a block diagram of an embodiment of a media content eventinformation system provisioned in a media device operating in an exampleenvironment;

FIGS. 2A-2F illustrate media mosaic management according to an exampleembodiment;

FIGS. 3A-3H are tables that illustrate an example filter scoring processprovided by an example embodiment;

FIG. 4 is a flow diagram illustrating an example process for generatinga media mosaic according to an example embodiment; and

FIG. 5 is a block diagram of an example computing device/systemconfigured to implement an example embodiment.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of an embodiment of a media content eventinformation system 100 provisioned in a media device 102. The examplemedia device 102 receives a plurality of programs in a media contentstream 104.

Embodiments of the media content event information system 100 areconfigured to generate and output a media mosaic 106 that providesimprovements over conventional legacy EPGs and/or video mosaics. Asdiscussed further below, the media content event information system 100generates a media mosaic that presents more relevant information aboutavailable programming than is possible on a legacy EPG or a videomosaic.

An example media device 102 includes, but is not limited to, a set-topbox (STB) that is communicatively coupled to a broadcast system (notshown). In other embodiments, the media device 102 includes or is partof a television (TV), a digital video disc (DVD) player/recorder, aBlu-ray player/recorder, a game playing device, a mobile device (e.g., atablet or smart phone), or a personal computer (PC). The media device102 is configured to present selected media content events that arereceived in the media content stream 104.

The media content stream 104 may comprise one or more streaming mediacontent events (referred to herein interchangeably as a “program”)provided from the media content broadcast facility over the broadcastsystem (not shown) operated by a media content service provider.Non-limiting examples of broadcasting systems include satellite systems,cable or other wire-based systems, or over the air (OTA) broadcastingsystems. Since the media content service provider is providing contentfrom many individual program provider sources (referred to hereininterchangeably as a “station”), or even thousands of differentstations, some broadcasting systems provide a plurality of differentmedia content streams 104 each providing content from one or moredifferent stations.

The example media device 102 is communicatively coupled to a mediapresentation system 108 that includes a visual display device 110, suchas a television (hereafter, generically a TV), and an audio presentationdevice 112, such as a surround sound receiver controlling an audioreproduction device (hereafter, generically, a speaker 114). Other typesof output devices may also be coupled to the media device 102, includingthose providing any sort of stimuli sensible by a human being, such astemperature, vibration and the like. The video portion of the mediacontent event is displayed on a display 116 and the audio portion of themedia content event is reproduced as sounds by one or more speakers 114.In some embodiments, the media device 102 and one or more of thecomponents of the media presentation system 108 may be integrated into asingle electronic device. The video portion of the streamed mediacontent is displayed on the display 116 and the audio portion of thestreamed media content is reproduced as sounds by the speakers 114.

The example media device 102 comprises a media content stream interface118, a processor system 120, a memory medium 122, a program buffer 124,an optional digital video recorder (DVR) 126, a presentation deviceinterface 128, and a remote interface 130. The memory medium 122comprises portions for storing the media device logic 132, electronicprogram guide (EPG) information 134, an optional browser 136, and mediamosaic management logic 138 (the “mosaic manager”). In some embodiments,the media device logic 132 and the mosaic manager 138 may be integratedtogether, and/or may be integrated with other logic. In otherembodiments, some or all of these memory and other data manipulationfunctions may be provided by and using remote server or other electronicdevices suitably connected via the Internet or otherwise to a clientdevice. Other media devices may include some, or may omit some, of theabove-described media processing components. Further, additionalcomponents not described herein may be included in alternativeembodiments.

The functionality of the media device 102, here a set-top box, is nowbroadly described. A media content service provider provides mediacontent that is received in one or more multiple media content streams104 multiplexed together in one or more transport channels. Thetransport channels with the media content streams 104 are communicatedto the media device 102 from a media system sourced from a remote headend facility (not shown) operated by the media content service provider.Non-limiting examples of such media systems include satellite systems,cable system, and the Internet. For example, if the media contentprovider provides programming via a satellite-based communicationsystem, the media device 102 is configured to receive one or morebroadcasted satellite signals detected by an antenna (not shown).Alternatively, or additionally, the media content stream 104 can bereceived from one or more different sources, such as, but not limitedto, a cable system, a radio frequency (RF) communication system, or theInternet.

The one or more media content streams 104 are received by the mediacontent stream interface 118. In a broadcast environment, one or moretuners 118 a in the media content stream interface 118 selectively tuneto one of the media content streams 104 in accordance with instructionsreceived from the processor system 120. The processor system 120,executing the media device logic 132 and based upon a request for aparticular program of interest specified by a user, parses out (e.g.,demultiplexes) media content associated with the specified program. Theprogram is then assembled into a stream of video and/or audioinformation which may be stored by the program buffer 124 such that themedia content of the program can be streamed out to components of themedia presentation system 108, such as the visual display device 110and/or the audio presentation device 112, via the presentation deviceinterface 128. Alternatively, or additionally, the parsed out mediacontent may be saved into the DVR 126 for later presentation. The DVR126 may be directly provided in, locally connected to, or remotelyconnected to, the media device 102. In alternative embodiments, themedia content streams 104 may be stored for later decompression,processing and/or decryption.

From time to time, information populating the EPG information 134portion of the memory medium 122 is communicated to the media device102, via the media content stream 104 or via another suitable contentdistribution system. The EPG information 134 stores informationpertaining to the scheduled programming of a plurality of differentprograms that are available from the plurality of different stations.The information stored in the EPG information 134 portion of the memorymedium 122 may include, but is not limited to, a scheduled presentationstart and/or end time for each program (or a start time and a durationof the program), a channel number and/or station call letters, anddescriptive information about each program, station, and/or channel.

The program's descriptive information (program identificationinformation or the like) may include the title of the program, names ofpersons or entities associated with the program (e.g., producers,directors, performers, actors, and/or teams), date of creation, and asummary describing the nature of the media content event. Any suitableinformation may be included in the program's descriptive information,including thumbnail images and/or short duration thumbnail video clips.As discussed further below, the EPG information 134 is used to generatethe media mosaic 106 that is presented upon the display 116.

The EPG information 134 may include thumbnail images and/or a thumbnailvideo clip associated with programs. A thumbnail image is a small sizedstill image that imparts information pertaining to a particular program.A thumbnail video clip is a short duration video that impartsinformation pertaining to a particular program. The thumbnail imageand/or thumbnail image clip may be presented as part of the media mosaic106.

The example media device 102 is configured to receive commands from auser via a remote control 140. The remote control 140 includes one ormore controllers 142 disposed on the surface of the remote control 140.The user, by actuating one or more of the controllers 142, causes theremote control 140 to generate and transmit commands, via a wirelesssignal 144, to the media device 102. The commands control the mediadevice 102 and/or control the components of the media presentationsystem 108. The wireless signal 144 may be an infrared (IR) signal or aradio frequency (RF) signal that is detectable by the remote interface130.

The processes performed by the media device 102 relating to theprocessing of the received media content stream 104 and communication ofa presentable media content event to the components of the mediapresentation system 106 are generally implemented by the processorsystem 120 while executing the media device logic 132. Thus, the mediadevice 102 may perform a variety of functions related to the processingand presentation of one or more programs (media content events) receivedin the media content stream 104.

FIGS. 2A-2F illustrate media mosaic management according to an exampleembodiment. The functions and operations described with respect to thefollowing figures may be performed by the media mosaic manager 138. Byway of overview, the media mosaic manager 138 presents a media mosaicthat displays information about available programming via multiple tilesthat each display information about a corresponding program. The tilesshown in a given mosaic may be selected based on various factors,including user preferences, user viewing habits, a mosaic filter, timeof day, or the like.

FIG. 2A provides an enlarged view of the media mosaic 106 introducedwith respect to FIG. 1, above. The media mosaic 106 includes multipletiles 201 a-201 i. Each tile presents information about a correspondingprogram that is available for viewing via the media device 102,including programs that are currently being broadcast, scheduled forfuture broadcast, available on-demand, previously stored (e.g., in aDVR), or the like.

In some embodiments and configurations, all of the tiles of the mediamosaic 106 present information about programs that are currentlyavailable, such as programs that are being broadcast at the time whenthe media mosaic 106 is being viewed. The media mosaic 106 may providedifferent views, which may be selected by the user. For example, a firstview may show currently broadcast programs, a second view may showstored programs, a third view may show on-demand programs, a fourth viewmay show programs scheduled for broadcast at a selected time, and thelike.

Each of the tiles of the media mosaic 106 presents information about acorresponding program. The information may include text (e.g., theprogram name) and video or still images from the program. For example,tile 201 a shows the title of a sporting event, Seahawks versus Cowboys,along with video from the sporting event. The video may be live (e.g.,the actual video being broadcast concurrently with the viewing of themedia mosaic 106) or a clip that was previously captured and stored.Similarly, tile 201 b shows the title of a movie (“Action Movie 1”)along with video from the movie. Again, the video may be live orpreviously stored. Tiles 202 c-201 i similarly each provide the name andvideo from a corresponding program.

The user can scroll through the different videos in the mosaic, whichmay activate the audio for the corresponding video. When the userdecides that they want to watch program, then they can select the video(e.g., by pressing “select” on the remote control), and the media devicewill display only that channel. Other actions include setting a timer,recording the content or seeing additional information. For futureevents, video and/or audio may not be available, for example in the caseof a movie premiere or a football game that has not started yet.However, the mosaic manager 138 is able to access trailers or othervideo and audio clips to be presented to the user. These video/audioclips can be stored internally in a hard drive (or similar) in the mediadevice, or in a remote database or storage from where the media devicecan retrieve them.

The mosaic manager 138 may decide whether or not to show liveprogramming via the mosaic 106. For example, the mosaic manager 138 maydetermine whether showing live video will likely spoil the ending orviewing of a particular event. For example, showing video from the lasthalf hour of a movie or any live video from a sporting event may spoilthe viewer's enjoyment of the program. In such cases, the mosaic manager138 may instead show a video clip from the beginning of the program, acanned trailer, or other non-live content (e.g., a still image). Thisdetermination may be made based on user preference and/or default rules.

FIG. 2B illustrates user interface controls 205-207 for specifyingpersonal preferences for the creation of a mosaic. A mosaic may includeone or more programs that have been selected based on the personalpreferences specified by the user. The mosaic can also be created basedon viewing habits for the timeslot that the user requests the mosaic.For example, the user can create different mosaics based on filters,such as “only movies,” “only sports,” “only sport and movie events,” orthe like.

Control 205 is a screen, window, or dialog that can be accessed througha main menu (or other user interface) provided by the media device orthrough a button in the remote control. Control 205 shows a list ofdifferent mosaics as described above. The user can also access mosaicsthat include all of the programming events based on viewing habits for aspecific timeslot, such as Monday 2 pm-4 pm, Monday 4 pm-6 pm, etc. Inorder to avoid the inconvenience of having to go through a large numberof mosaics, some embodiments provide a way to quickly access a main,preferred, or frequently used mosaic, such as a “Mosaic Favorites” forthe current time slot, a “Recently Used Mosaic,” “Frequently UsedMosaic,” or the like.

The mosaic manager 138 may consider which channels are the most popularaccording to the user viewing habits, or in other words, what are thechannels that the subscriber normally watches at the time that themosaic is requested. The user can change the duration of this timeslotto be more or less than 2 h. In the example of control 205, if the userrequests the mosaic at 6:30 pm, the mosaic manager 138 will consider themost popular channels for the subscriber between 6 pm and 8 pm. Themosaic manager 138 may include channels that include recommendedprogramming events based on the viewing habits of the user. The mosaicmanager 138 may include free previews of pay-per-view and/orvideo-on-demand content, or from other sources. The mosaic may alsoinclude the most popular programming events based on the total amount ofviewers that are currently watching television.

Controls 206 and 207 are screens that are configured to specify mosaicproperties, in order to indicate certain preferences, such as the themeor genre of the events to be shown in a mosaic. For example, the usermay interact with control 206 in order to specify that only programs ofone or more selected genres are to be shown in the mosaic. As anotherexample, the user may interact with control 207 in order to specify thatonly programs of one or more selected content types are to be shown inthe mosaic.

The user can create several mosaics. In embodiments where the mosaicmanager 138 creates customized mosaics with recommendations based on auser's viewing habits, or based on overall popularity, there may be onlyone mosaic, but the user can select how many videos will show up in themosaic. Each video may include information about the event and thechannel, and this information may be accessible through the remotecontrol.

The mosaic manager 138 may also generate mosaics based on userpreference inputs specified directly into the mosaic 106. For example,the user may be able to interactively modify the set of programsincluded in a mosaic, such as by selecting one of the displayed tilesand pushing a button (e.g., on the remote or on the tile itself) toindicate that the user likes/dislikes the program associated with thetile. This input becomes a new factor for the process that determinesthe personalized mosaic. Alternatively, the user may be able to movetiles around to adjust the order in which the clips are displayed in themosaic, thereby indicating an order of relative preference for thecorresponding programs. In some cases, such interactivity may beprovided via a companion mobile device (e.g., the user's tablet or smartphone) that displays the mosaic, such that the user can use touchgestures to rearrange the tiles of mosaic.

FIGS. 2C-2F illustrate a mosaic filtering technique provided by someembodiments. The described filtering technique allows a user to select afirst program (from a first mosaic) that functions as a filter. Thisfilter is used to identify similar programs that are then shown via asecond, filtered mosaic.

FIG. 2C illustrates the selection of a tile for purposes of creating anexample mosaic filter. FIG. 2C shows the media mosaic 106 along with aselection control 210. The selection control 210 can be operated like acursor or pointer via an input device, such as the remote control 140,mobile device (e.g., in communication with the media device), or thelike. The user can move the selection control 210 from one tile toanother. In this case, the user moves the selection control 210 to tile201 b, and then indicates a selection, such as by pressing a button(e.g., OK, ENTER), making a gesture (e.g., double click, tap), or thelike.

FIG. 2D illustrates a mosaic filter creation dialog 220 used to generatethe example mosaic filter. Once the user selects a given tile, the mediamosaic 106 presents the filter creation dialog 220. Continuing theexample of FIG. 2C, the user has selected tile 201 b, which isassociated with an action movie. In response, the media mosaic 106presents the filter creation dialog 220. The filter creation dialog 220is populated with attributes of the selected action movie of tile 201 b.The displayed attributes are obtained from metadata associated with theselected movie, such as may be stored with reference to EPG informationor some other repository.

In the illustrated embodiment, the attributes are represented asname-value pairs, such as Type=Movie, Genre=Action, Director=Tarantino,and the like. The filter creation dialog 220 is in some embodimentsconfigured to allow the user to edit some or all of the attributes tomore specifically reflect the characteristics of the filter. In theillustrated embodiment, the filter creation dialog 220 includes a textentry field 221 that is operated by the user to enter a name for thefilter. In this field, the user can enter their name (e.g., “John”) orsome other string or tag that will help the user remember the nameand/or purpose of the filter (e.g., “MyActionMovies”). In someembodiments, the media mosaic 106 prepopulates the field 221 withdefault values based on information such as user identifier (e.g., username, if known) and/or some combination of the displayed metadata (e.g.,“Movie-Action”).

Once the user reviews and possibly edits the displayed attributes to hissatisfaction, the user can create the mosaic filter by selecting the OKbutton. As will be discussed in more detail below, the mosaic filter isthen applied to stored program information in order to select one ormore programs that have attributes that are similar to attributesassociated with the mosaic filter. The media mosaic 106 then presentstiles corresponding to the selected programs, thereby presenting programinformation that is more relevant and tailored to the interests of theuser.

FIG. 2E illustrates example program data 230 that is processed by themosaic manager 138 via the example mosaic filter. The program data 230is a collection of records 231 a-231 g, each of which stores informationabout a particular program. The program data 230 may be stored as partof the EPG information 134 discussed with respect to FIG. 1. It may beobtained in various ways, such as via the broadcast network (e.g.,embedded in a transmission stream), over the Internet (e.g., from aWebsite), from local storage (e.g., from a local database of movieinformation), or the like. Each of the records 231 a-231 g representsattributes corresponding to a particular program. In this example, theattributes are stored as name-value pairs.

Continuing the example of FIG. 2D, the generated mosaic filtercorresponds to program record 231 b. In this embodiment, the programrecord 231 b is annotated with metadata or a tag that reflects itsassociation with (or usage as) a mosaic filter. In this case, record 231b is tagged with the string “John,” as input via the text input field221.

Next, the record 231 b is compared to the other records 231 a and 231c-231 g to identify records that have attributes that are at leastsimilar to the attributes of record 231 b. In this case, the selectionprocess identifies three other records, 231 d, 231 e, and 231 g. Record231 d is selected because it is also an action movie directed byTarantino. Record 231 e is selected because it is also an action movie,although it is directed by Scorsese and not Tarantino. Finally, record231 g is selected because it is an adventure movie, and adventure isconsidered a sub-genre (or related genre) of the action genre. In thisexample, record 231 d is the most similar to record 231 b, while 231 gis the least similar, although still sufficiently related to warrantselection.

The selected records are depicted as part of data collection 240. Notethat the collection 240 may include additional records, not shown, asindicated by the ellipsis 232. Note also that in this embodiment, thetag “John” is added to each of the selected records 231 d, 231 e, and231 g. By adding the tag to these records, the media mosaic 106 andassociated logic need not perform name-value field comparisons todetermine whether or not these records match the “John” filter in thefuture. Rather, the media mosaic 106 simply searches for records thatare tagged “John” (and possibly new records that have been added sincethe “John tag was created) and uses those records as part of a filteredmosaic. This tagging procedure thereby eliminates the need to reprocessthe entire program data 230 when the filter is applied in the future.This technique improves the functioning of a computer system, forexample the media device 102 and the mosaic manager 138, by reducing theamount of processing necessary to present media mosaics.

FIG. 2F illustrates the media mosaic 106 after application of theexample mosaic filter. The media mosaic 106 now includes a set of tilesthat present information about programs that were selected as discussedabove. Note that some of the tiles are the same as those presented inthe mosaic 106 of FIG. 2A. In particular, tile 201 b corresponds to theaction movie that was selected (FIG. 2C) as the basis for the mosaicfilter. Also, tile 201 g, which was shown in FIG. 2A, corresponds to asecond action movie, such as the action movie of record 231 d in FIG.2E. Tiles 201 j and 201 k correspond to the movies of records 231 e and231 g in FIG. 2E. The remaining tiles correspond to programs that havebeen selected because they are similar to the mosaic filter. As thefilter focused on action movies by director Tarantino, the other tilespresent programs (typically movies) that are similar in some way, suchas because they may share the same director, have a similar genre (e.g.,adventure, thrillers, and science fiction are related to the actiongenre), or have some other related characteristic or feature.

The described filtering techniques improve the functioning of a computersystem by making better use of limited display space. As noted, legacyEPGs and traditional video mosaics present information based on channeland time, and thus frequently present information that is of littleinterest to the user. The described filtering techniques address thisproblem by presenting information that is tailored to the user'sinterests, thereby making better use of the limited display areaprovided by typical display screens.

FIGS. 3A-3H are tables that illustrate an example filter scoring processprovided by an example embodiment. Some embodiments generate a score formultiple programs, where the score for each program is based on acomparison between a mosaic filter and the program. An example scoringprocess is described below.

FIG. 3A depicts a program record table 300 that represents attributes ofa single program named “Jurassic Park.” The table 300 representsattributes via a collection of name-value pairs, where the names includeType, Title, Key words, Genre, Director, Writer, TV host, Actor, Year ofpremiere, and Metadata. A greater or lesser number of attributes, orattributes of different kinds, may be represented in other embodimentsor configurations. Note also that attributes may have multiple values.For example, three different actors are represented (Sam Neill, LauraDern, and Jeff Goldblum) via the Actor 1, 2, and 3 fields. Also, someattributes may not have assigned values, such as the TV host attribute.The Metadata field is here used to associate a tag or filter name (e.g.,“John”) with this program record. In other embodiments, such a tag maybe stored in a separate data structure, such as a table that associatesfilter names with programs. The illustrated data may be obtained fromvarious sources, including from EPG information 134, from the broadcastnetwork, from Internet sources (e.g., Web sites), local media (e.g.,local storage, removable storage), or the like.

FIGS. 3B and 3C show example points tables 310 and 320 that are used byan example scoring process. Some embodiments use a scoring process todetermine a similarity score, which is a level of similarity,relatedness, or affinity between a filter and multiple program records.By way of overview, the process compares attributes of the filter (e.g.,represented by way of table 300) with corresponding attributes fromanother program record. Different point values may be assigned for exactmatches, partial matches, or the like. The point values may be specifiedby a points table such as the points tables 310 and 320.

In FIG. 3B, points table 310 specifies the number of points to assignbased on a comparison of the Type attribute of given program records. Inthe table 310, the field values for a first program record (e.g., themosaic filter) are represented in rows, while the field values for asecond program record (e.g., a record being compared to the mosaicfilter) are represented in columns. Exact matches appear along thediagonal and are each worth 20 points. Partial matches (e.g., similarfields) are shown elsewhere in the table. For example, if a first andsecond program record have a Type of Movie, then 20 points would beassigned to the similarity score. If instead the first and secondprogram record have Types of Movie and Documentary, respectively, then10 points would be assigned to the similarity score.

In FIG. 3C, points table 320 specifies the number of points to assign tothe similarity score based on a comparison of the Genre attribute ofgiven program records. Points tables provide for the representation ofdifferent levels of similarity or relatedness. For example, in table320, Action and Adventure are represented as related (but not identical)genres, as is reflected by the 10 point similarity score. Action andCrime are also considered related, but not as closely as Action andAdventure, as reflected by the 5 point similarity score.

FIG. 3D shows two program records 330 and 335. The program record 330represents the movie “Jurassic Park,” while program record 335represents the movie “Independence Day.” As noted above, some attributesmay be multi-valued. In this example, the program records 330 and 335have multiple values for Genre, as represented by the fields Genre 1 and2 present in both program records. In some embodiments, an exhaustivecomparison may be carried out, in which the Genre 1 value of programrecord 330 is compared to the Genre 1 and 2 values of program record335, and then the Genre 1 value of program record 335 is compared to theGenre 1 and 2 values of program record 330. In general, such anexhaustive comparison results in N×M comparisons, where N is the numberof values for an attribute in a first record and M is the number ofvalues for the same attribute in a second record.

FIG. 3E depicts an example of similarity scoring with multi-valuedattributes. Here, table 340 depicts the four comparisons made whencomparing the multiple values for the Genre attributes of records 330and 335. Using the points specified in points table 320, Adventure(Genre 1, Jurassic Park) compared with Action (Genre 1, IndependenceDay) results in 10 points. Adventure (Genre 1, Jurassic Park) comparedwith Adventure (Genre 2, Independence Day) results in 20 points. ScienceFiction (Genre 2, Jurassic Park) compared with Action (Genre 1,Independence Day) results in 5 points. Science Fiction (Genre 2,Jurassic Park) compared with Adventure (Genre 2, Independence Day)results in 10 points. The four comparisons result in a total score of 45points.

Note that other approaches to scoring multi-valued attributes arecontemplated. For example, for a given attribute, the resulting scoremay be divided by the number of comparisons (or some other factor) so asto not unfairly weight multi-valued factors with a large number offactors. In the above example, this would mean dividing the score of 45points by 4 (the number of comparisons), yielding a scaled score of11.25 points.

FIG. 3F shows an example points table 350 that is used by the examplescoring process for scoring the Director attribute. Note that the pointstable 350 also represents relative similarities between directors byspecifying different scores for pairs of directors based on their degreeof similarity. Other attributes, such as Writer, TV Host, Actor, and thelike can be scored in a similar manner. Furthermore, attributes that aretypically multi-valued, such as Actor, can be scored as described withrespect to the Genre attribute, above.

FIG. 3G shows an example points table 360 that is used by the examplescoring process for scoring a time-based attribute, such as premiereyear, decade, or other time period. In this embodiment, a five-year timeperiod is used as the relevant time period for comparing program ages.As can be seen, programs that premiered during the same five-year periodare awarded 20 points, programs that premiered during adjacent five-yearperiods are awarded 10 points, and so on.

In other embodiments, the time-based score may be determineddifferently. For example, the score may be expressed as max(0,C−|year1−year2|), where C is some constant (e.g., 20) and year1 andyear2 are two premiere years. Thus, two programs having premieres in1998 and 2005 would receive a score of 13. As another example, twoprograms having premieres in 1975 and 2005 would receive a score of 0,because their premieres separated by more than 20 years.

Other types of attributes may be scored using techniques discussed aboveor other approaches. In general, attributes that have a small number ofpossible values are amenable to the approaches described with respect toGenre, above. For text-based values, such as Title, one approach is todetermine whether any of the words in the title of a one program alsoexist in the title of other programs. For example, if the first programis titled “Jurassic Park,” the title may be decomposed into two separatekeywords (Jurassic and Park), which are then used as search termsagainst other titles. Each match may be awarded a fixed number (e.g., 5)of points. Thus, a second program titled “Jurassic Park 2” would score5+5 extra points, because this title contains both keywords. A thirdprogram titled “Jurassic City” would be assigned 5 extra points becauseonly the word “Jurassic” exists in both titles.

Some programs may also include a KeyWords attribute, which includes oneor more keywords or tags or other text that describes or characterizesthe program. For example, a key word for “Jurassic Park” could be“dinosaur.” In this case, any other program having the keyword“dinosaur” would score extra points for the match.

Some embodiments may have a set of rules for scoring differentattributes. For example, a default rule may assign a specified number ofpoints for an exact attribute match, and zero otherwise. This rule isused for an attribute unless a different rule is specified for theattribute. Some attributes may be associated with scoring/points tables,such as those describe above. When a points table is provided, thepoints table is used in lieu of the default rule.

FIG. 3H shows a score summary table 370 for multiple programs. In thefirst row, the program that was originally used to create the filter(Jurassic Park) is given an arbitrarily high score, or whatever scoreresults from comparing it to itself (which typically would be expectedto be higher than any other comparison). The subsequent rows each storea score that reflects the similarity between the filter (as representedby the first program in the table) and the program listed in the currentrow. As noted above, the filter tag (e.g., “John”) may be applied toeach of the programs in table 370, in order to speed up recall andprocessing for future requests to browse the filtered mosaic.

The number of rows may reflect the maximum mosaic size. The table 370only includes the top-scoring programs, such that the resulting mosaicrepresents the most similar programs. The maximum mosaic size may beuser-adjusted in some embodiments.

In some embodiments, the user can apply multiple filters. In oneembodiment, applying multiple filters results in the independentapplication of each filter, and then a set-wise comparison (e.g.,intersection) of the resulting programs, so that only programs thatappear in each filtered mosaic are placed into the combined mosaic. Inanother embodiment, applying multiple filters results in the aggregationof scores for each program, followed by a generation of a singletop-score table. For example, if Filters 1, 2, and 3 are applied toprograms p1 . . . p_(N), a score for each program p_(i) is determined bysumming the scores for Filters 1-3 applied to program p_(i).

Optionally, programs could be filtered based on ratings. For example,programs with a rating less than a specific grade could be filtered out.Grades may be determined by reference to Internet sites (e.g., IMDB.com,Rotten Tomatoes), ratings agencies (MPAA), or the like.

FIG. 4 is a flow diagram illustrating an example process 400 forgenerating a media mosaic according to an example embodiment. Theprocess 400 may be performed by the media mosaic manager 138 or someother logic component of the media device 102 or other computing system.

At block 402, the process outputs a first mosaic that includes tilesthat correspond to a media content event. An example of a first mosaicis given with respect to FIG. 2A, above. Outputting a mosaic may includetransmitting data representing the mosaic to some other device (e.g., adisplay device, a remote set-top box, a mobile device) for display by oron that device. In other cases, outputting the mosaic may includeactually displaying the mosaic on a coupled display device.

At block 404, the process receives an indication of a media contentevent corresponding to one of the tiles selected by a user. An exampleof receiving such an indication is given with respect to FIG. 2C, above.

At block 406, the process filters media content events based on theindicated media content event to select multiple related media contentevents. Selecting related media content events may include determiningmultiple related media content events that are similar to the indicatedevent. An example of determining related media content events isdiscussed with respect to FIGS. 3A-3H, above.

Determining related content events may include determining attributes ofthe indicated media content event; and selecting the multiple relatedmedia content events by comparing the determined attributes (e.g.,Genre, Type, Director, Actor) to corresponding attributes of multipleother media content events, wherein the selected media content eventseach have at least one attribute in common with the indicated mediacontent event.

Selecting the multiple related content events may include determiningmultiple scores that each reflect how many attributes of a correspondingmedia content event are in common (e.g., identical or related to) withthe determined attributes of the indicated media content event; andselecting the multiple related media content events, such that theselected media content events each have corresponding scores that arehigher than the scores corresponding to media content events that arenot selected. As noted above, a number of scores may be generated, andthen the programs having the N highest scores can be selected.

As noted above, attributes may be represented by way of name-valuepairs. In this case, determining the multiple scores may includeaccessing a score data structure (e.g., points table 320) thatassociates, for each of multiple attribute name-value pairs, acorresponding value to add to a similarity score when two media contentevents both have attributes matching the attribute name-value pair. Asalso noted above, different scores may be assigned depending on whethertwo attributes are identical or similar/related.

At block 408, the process outputs a second mosaic that includes tilesthat correspond to the multiple related media content events. An exampleof a second mosaic is given with respect to FIG. 2F, above. After block408, the process returns or goes on to perform other functions.

Other embodiments may provide additional or other functions. Forexample, the process may determine whether to output recorded or livevideo in each mosaic tile. In some cases, the process 400 (or anothermedia mosaic manager process) includes, for each of multiple tiles of amosaic, determining whether to output live or delayed video from thecorresponding media content event; and when it is determined to outputlive video, displaying live video on the tile, otherwise displayingdelayed video on the tile.

Determining whether to output live or delayed video includes determiningwhether displaying live video would spoil the ending of the mediacontent event. This determination may be based on event type (e.g.,movies or sporting events are likely to be spoiled by showing livevideo).

Also, the process may determine to show live/recorded video based onwhether a tuner is available to obtain live video. Media devicestypically have a limited number of tuners, so that the media mosaicmanager 138 may not be able to output live video for each tile. In somecases, the process proactively records video from the beginning of mediacontent events based a determination that outputting live video from themedia content events would spoil the ending of the media content events.For example, knowing that a given mosaic includes a sports program, themedia mosaic manager may record the first few minutes of the sportingevent in order to have a clip to display in the mosaic.

FIG. 5 is a block diagram of an example computing device/systemconfigured to implement an example embodiment. FIG. 5 shows a computingsystem 500 that may be utilized to implement a media mosaic manager 138.In one embodiment, the computing system 500 is part of a set-top box orother media device 102 as described with respect to FIG. 1. In otherembodiments, the computing system 500 is part of a presentation device,such as a television. In still other embodiments, the computing system500 is part of a mobile computing device, such as a smart phone ortablet computer.

In the embodiment shown, the computing system 500 comprises a computermemory (“memory”) 501, a display 502, one or more Central ProcessingUnits (“CPU”) 503, Input/Output (“I/O”) devices 504 (e.g., audioprocessor, video processor, keyboard, mouse, CRT or LCD display cards ordrivers, and the like), other computer-readable media 505, and networkconnections 506. The media mosaic manager 138 is shown residing inmemory 501. In other embodiments, some portion of the contents, some of,or all of the components of the media mosaic manager 138 may be storedon and/or transmitted over the other computer-readable media 505. Thecomponents of the media mosaic manager 138 preferably execute on one ormore CPUs 503 and manage the generation of media mosaics, as describedherein. Other code or programs 530 (e.g., an audio/video processingmodule, an electronic program guide manager module, a Web browser orserver, and the like) and potentially other data repositories, such asdata repository 520, also reside in the memory 501, and preferablyexecute on one or more CPUs 503. Of note, one or more of the componentsin FIG. 5 may not be present in any specific implementation. Forexample, some embodiments may not provide other computer-readable media505 or a display 502.

The illustrated media mosaic manager 510 includes media mosaicmanagement logic 138, a user interface (“UI”) manager 511, a mediamosaic manager application program interface (“MMM API” or simply “API”)512, and a data store 515. The logic 138 includes instructions that areconfigured to, when executed by the CPU 503, perform the functions ofthe mosaic manager 510, such as creating new filters, applying filters,identifying similar programs, performing similarity scoring processes,and the like.

The UI manager 511 provides a view and a controller that facilitate userinteraction with the media mosaic manager 138 and its variouscomponents. For example, the user interface manager 511 providesinteractive graphical user interface elements such as those discussedwith respect to FIGS. 2A-2E, above. As discussed, such user interfacesare operable by users to interact with the media manager to create andapply mosaic filters.

The API 512 provides programmatic access to one or more functions of themedia mosaic manager 138. For example, the API 512 may provide aprogrammatic interface to one or more functions of the media mosaicmanager 138 that may be invoked by one of the other programs 530 or someother module. In this manner, the API 512 facilitates the development ofthird-party software, such as user interfaces, plug-ins, news feeds,adapters (e.g., for integrating functions of the media mosaic manager138 into Web applications), and the like.

In addition, the API 512 may be in at least some embodiments invoked orotherwise accessed via remote entities, such as code executing on aremote client device, to access various functions of the media mosaicmanager 138. For example, a remote device, such as mobile device 552,may interact with the API 512 in order to obtain a mosaic forpresentation on the mobile device 552, or to provide a specification ofa new mosaic for processing by the manager 510. The API 512 may also beconfigured to provide code modules that can be integrated intothird-party applications and that are configured to interact with theaction media mosaic manager 138 to make at least some of the describedfunctionality available within the context of other applications.

The data store 515 may be used to store various types of informationused by the media mosaic manager 138. For example, the data store 515may store user preferences, user history, mosaic information, EPGinformation, and the like.

The computing system 500 communicates with various remote entities via acommunication system 550. The communication system may include or standfor one or more distinct communication networks, media, channels, or thelike. For example, the computing system 500 may communicate with aprogram distributor 551 via a broadcast network implemented via cable,satellite broadcast, or the like. In addition, the computing system 500may communicate via the Internet (implemented over an assortment ofphysical media) with Internet sources 553 (e.g., program informationdatabases, review Websites, etc.). Further, the computing system 500 maycommunicate with a mobile device 552 (e.g., a user's smartphone ortablet) via a local network, such as to provide a hybrid interface inwhich the mosaic is presented on the mobile device in order to takeadvantage of the improved interactivity (e.g., touch capabilities) ofthe mobile device.

In an example embodiment, components/modules of the media mosaic manager138 are implemented using standard programming techniques. For example,the media mosaic manager 138 may be implemented as a “native” executablerunning on the CPU 503, along with one or more static or dynamiclibraries. In other embodiments, the media mosaic manager 138 may beimplemented as instructions processed by a virtual machine that executesas one of the other programs 530. In general, a range of programminglanguages known in the art may be employed for implementing such exampleembodiments. By implementing and executing the media mosaic manager 138,the computing system 500 becomes a special purpose machine that isspecially configured to manage media mosaics as described herein.

In addition, the embodiments described above may also be structured invarious ways, including but not limited to, multiprogramming,multithreading, client-server, or peer-to-peer, running on one or morecomputer systems each having one or more CPUs. Some embodiments mayexecute concurrently and asynchronously, and communicate using messagepassing, pipes, signals, or other communication techniques. Also, otherfunctions could be implemented and/or performed by eachcomponent/module, and in different orders, and by differentcomponents/modules, yet still achieve the described techniques.

Furthermore, in some embodiments, some or all of the components of themedia mosaic manager 138 may be implemented or provided in othermanners, such as at least partially in firmware and/or hardware,including, but not limited to one or more application-specificintegrated circuits (“ASICs”), standard integrated circuits, controllers(e.g., by executing appropriate instructions, and includingmicrocontrollers and/or embedded controllers), field-programmable gatearrays (“FPGAs”), complex programmable logic devices (“CPLDs”), and thelike. Some or all of the system components and/or data structures mayalso be non-transitorily stored as contents (e.g., as executable orother machine-readable software instructions or structured data) on acomputer-readable medium (e.g., as a hard disk; a memory; a computernetwork or cellular wireless network or other data transmission medium;or a portable media article to be read by an appropriate drive or via anappropriate connection, such as a DVD or flash memory device) so as toenable or configure the computer-readable medium and/or one or moreassociated computing systems or devices to execute or otherwise use orprovide the contents to perform at least some of the describedtechniques. Some or all of the system components and data structures mayalso be stored as data signals (e.g., by being encoded as part of acarrier wave or included as part of an analog or digital propagatedsignal) on a variety of computer-readable transmission mediums, whichare then transmitted, including across wireless-based andwired/cable-based mediums, and may take a variety of forms (e.g., aspart of a single or multiplexed analog signal, or as multiple discretedigital packets or frames). Such computer program products may also takeother forms in other embodiments. Accordingly, embodiments of thisdisclosure may be practiced with other computer system configurations.

It should be emphasized that the above-described embodiments are merelypossible examples of implementations of the invention. Many variationsand modifications may be made to the above-described embodiments. Allsuch modifications and variations are intended to be included hereinwithin the scope of this disclosure and protected by the followingclaims.

1. A method in a media device communicatively coupled to a display,comprising: by the media device, outputting, for presentation on thedisplay, a first mosaic that includes a first set of multiple tiles thateach correspond to a distinct media content event, wherein each of themultiple tiles displays video from the corresponding media contentevent; receiving an indication of a media content event corresponding toone of the multiple tiles selected by a user, wherein the userindication is received in response to a user selection of the indicatedmedia content event made via the presented first media mosaic; filteringa plurality of available media content events that are available to themedia device, wherein the filtering is based on at least one attributeof the indicated media content event, wherein the filtering is done inresponse to receiving the indicated media content event, the filteringcomprising: determining a first plurality of related media contentevents from the plurality of available media content events, wherein thefirst plurality of related media content events are determined based onat least one attribute that matches an attribute of a first filter,wherein the first filter attribute is similar to at least one of theattribute of the indicated media content event; generating a secondmedia mosaic using the first plurality of related media content eventsidentified from the filtering using the first filter; determining asecond plurality of related media content events from the plurality ofavailable media content events, wherein the second plurality of relatedmedia content events are determined based on at least one attribute thatmatches an attribute of a second filter, wherein the second filterattribute is similar to at least one of the attributes of the indicatedmedia content event, and wherein the second filter attribute isdifferent form the first filter attribute; generating a third mediamosaic using the second plurality of related media content eventsidentified from filtering using the second filter, and identifying athird plurality of related media content events, wherein each of thethird plurality of related media content events are included in both thesecond media mosaic and the third mosaic; and outputting, forpresentation on the display, a combined media mosaic that includes asecond set of tiles that each correspond to a distinct one of theidentified third plurality of related media content events.
 2. Themethod of claim 1, wherein determining the first plurality of relatedmedia content events and the second plurality of related media contentevent includes: determining the least one attribute of the indicatedmedia content event; and selecting the first plurality of related mediacontent events and the second plurality of related media content eventby comparing the determined at least one attribute to correspondingattributes of the plurality of available media content events, whereinthe selected first plurality of related media content events and thesecond plurality of related media content events each have at least oneattribute in common with the indicated media content event.
 3. Themethod of claim 2, wherein selecting the first plurality of relatedmedia content events and the second plurality of related media contentevents includes: determining multiple scores that each reflect how manyattributes of a corresponding media content event are in common with thedetermined at least one attribute of the indicated media content event;and selecting the first plurality of related media content events andthe second plurality of related media content events, such that theselected media content events each have corresponding scores that arehigher than scores corresponding to media content events that are notselected.
 4. The method of claim 3, wherein each of the determinedattributes includes an attribute name-value pair, wherein determiningthe multiple scores includes: accessing a score data structure thatassociates, for each of the multiple attribute name-value pairs, acorresponding value to add to a similarity score when two media contentevents both have attributes matching the attribute name-value pair. 5.The method of claim 3, wherein each of the determined attributesincludes an attribute name-value pair, wherein determining the multiplescores includes: accessing a score data structure that includes, foreach attribute name, a matrix having multiple rows and multiple columns,wherein the rows and columns correspond to attribute values possible forthe attribute name, such that the matrix contains a cell for everycombination of possible attribute values, wherein each cell contains acorresponding value to add to a similarity score when two media contentevents have attributes matching the combination of attribute valuescorresponding to the cell.
 6. The method of claim 3, wherein determiningthe multiple scores includes: increasing a score by a first amount for afirst and second media content event, based on whether an attribute ofthe first media content event is identical to a corresponding attributeof the second media content event.
 7. The method of claim whereindetermining the multiple scores includes: increasing the score by asecond amount for first and second media content event, based on whetheran attribute of the first media content event is similar but notidentical to a corresponding attribute of the second media contentevent, wherein the second amount is less than the first amount.
 8. Themethod of claim 2, wherein selecting the first plurality of relatedmedia content events and the second plurality of related media contentevents includes: selecting the first plurality of related media contentevents and the second plurality of related media content events based ona like/dislike indication received via a user-interface control of oneof the multiple tiles.
 9. The method of claim 2, wherein the attributesof the first filter and the second filter include at least one selectedfrom a group consisting of: event type, keywords, genre, director,producer, writer, actor, channel, premiere date, and channel. 10.-14.(canceled)
 15. A media device communicatively coupled to a display, themedia device comprising: a processor; and a memory that stores mediamosaic management logic that is configured, when executed by theprocessor, to: output, for presentation on the display, a first mediamosaic that includes a first set of multiple tiles that each correspondto a distinct media content event, wherein each of the multiple tilesdisplays video from the corresponding media content event; receive anindication of a media content event corresponding to one of the multipletiles selected by a user, wherein the user indication is received inresponse to a user selection of the indicated media content event madevia the presented first media mosaic; filter a plurality of mediacontent events that are available to the media device, wherein thefiltering is based on at least one attribute of the indicated mediacontent event, by determining multiple related media content events thatare similar to the indicated media content event, wherein the filteringis done in response to receiving the indicated media content event, thefiltering comprising: determine a first plurality of related mediacontent events from the plurality of available media content events,wherein the first plurality of related media content events aredetermined based on at least one attribute that matches an attribute ofa first filter, wherein the first filter attribute is similar to atleast one of the attributes of the indicated media content event;generate a second media mosaic using the first plurality of relatedmedia content events identified from the filtering using the firstfilter; determine a second plurality of related media content eventsfrom the plurality of available media content events, wherein the secondplurality of related media content events are determined based on atleast one attribute that matches an attribute of a second filter,wherein the second filter attribute is similar to at least one of theattributes of the indicated media content event, and wherein the secondfilter attribute is different form the first filter attribute; generatea third media mosaic using the second plurality of related media contentevents identified from the filtering using the second filter; andidentify a third plurality of related media content events, wherein eachof the third plurality of related media content events are included inboth the second media mosaic and the third media mosaic; and output, forpresentation on the display, a combined media mosaic that includes asecond set of tiles that each correspond to a distinct one of theidentified third plurality of related media content events.
 16. Themedia device of claim 15, wherein the logic is further configured to:determine attributes of the indicated media content event, wherein eachof the determined attributes includes an attribute name-value pair; andselect the first plurality of related media content events and thesecond plurality of related media content events by comparing thedetermined attributes to corresponding attributes of the first pluralityof related media content events and the second plurality of relatedmedia content events, wherein comparing includes accessing a score datastructure that associates, for each of multiple attribute name-valuepairs, a corresponding value to add to a similarity score when two mediacontent events both have attributes matching the attribute name-valuepair.
 17. The media device of claim 16, wherein the logic is furtherconfigured to determine the similarity score by performing keywordsearches using keywords identified in text-based attributes of theindicated media content event.
 18. (canceled)
 19. A non-transitorycomputer-readable medium storing instructions that are configured, whenexecuted by a computer processor, to perform a method comprising:outputting, for presentation on a display, a first media mosaic thatincludes a first set of tiles that each correspond to a distinct mediacontent event, wherein each of the multiple tiles displays video fromthe corresponding media content event; receiving an indication of amedia content event corresponding to one of the multiple tiles selectedby a user, wherein the user indication is received in response to a userselection of the indicated media content event made via the presentedfirst media mosaic; filtering a plurality of available media contentevents that are available to the media device, wherein the filtering isbased on the indicated media content event, by determining multiplerelated media content events that are similar to the indicated mediacontent event, wherein the filtering is done in response to receivingthe indicated media content event, the filtering comprising: determininga first plurality of related media content events from the plurality ofavailable media content events, wherein the first plurality of relatedmedia content events are determined based on at least one attribute thatmatches an attribute of a first filter, wherein the first filterattribute is similar to at least one of the attribute of the indicatedmedia content event; generating a second media mosaic using the firstplurality of related media content events identified from the filteringusing the first filter; determining a second plurality of related mediacontent events from the plurality of available media content events,wherein the second plurality of related media content events aredetermined based on at least one attribute that matches an attribute ofa second filter, wherein the second filter attribute is similar to atleast one of the attributes of the indicated media content event, andwherein the second filter attribute is different form the first filterattribute; generate a third media mosaic using the second plurality ofrelated media content events identified from the filtering using thesecond filter; and identifying a third plurality of related mediacontent events, wherein each of the third plurality of related mediacontent events are included in both the second media mosaic and thethird media mosaic; and outputting, for presentation on the display, acombined media mosaic that includes a second set of tiles that eachcorrespond to a distinct one of the identified third plurality of mediacontent events.
 20. The computer-readable medium of claim 19, whereindetermining the first plurality of related media content events and thesecond plurality of related media content events is based on attributesof the indicated media content event, attributes of the multiple mediacontent events, and like/dislike indications received from user.
 21. Themethod of claim 1, wherein the attribute of the first filter is a totalamount of viewers currently watching the plurality of available mediacontent events on a plurality of media devices, and wherein the firstplurality of related media content events is determined based on themost popular media content events being watched by the viewers.
 22. Themethod of claim 1, further comprising: presenting the second mediamosaic to the user; and receiving a user input that moves a first tilein the presented second media mosaic from a first position to a secondposition, wherein the moved first tile is given a higher relativepreference of the user over other tiles of the presented second mediamosaic.
 23. The method of claim 1, wherein the attribute of the firstfilter is a time-based attribute, wherein each one of the plurality ofavailable media content events has a premiere date, and whereindetermining the first plurality of related media content events from theplurality of available media content events comprises: determining ascore for each of the plurality of available media content events basedon a series of time increments and the premier date such that each ofthe plurality of available media content events is associated with oneof the time increments, wherein the score of each of the plurality ofavailable media content events is reduced for each time incrementassociated with the media content event.
 24. The method of claim 1,wherein a plurality of attributes is used by the first filter todetermine the first plurality of related media content events, andwherein determining the first plurality of related media content eventsfrom the plurality of available media content events comprises:determining a score for each of the plurality of available media contentevents, wherein the determined score is based on each of a number ofattributes that are applicable to the available media content event; andfor each of the scored plurality of available media content events,dividing the score by the number of attributes used to determine thescore.